/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package questao07;

import java.util.ArrayList;
import java.util.Iterator;

/**
 *
 * @author SDKW
 */
public class Alarme {
    
    private ArrayList<Sensor> observados = new ArrayList<>();
    private ArrayList<Seguranca> observadores = new ArrayList<>();
    
    public void adicionarObservado(Sensor sensor) {
        if (!observados.contains(sensor)) {
            observados.add(sensor);
            System.out.println("Observado adicionado: " + sensor.toString());
        }
    }
    
    public void adicionarObservador(Seguranca seguranca) {
        if (!observadores.contains(seguranca)) {
            observadores.add(seguranca);
            System.out.println("Observador adicionado: " + seguranca.toString());
        }
    }
    
    public void removerObservado(Sensor sensor) {
        if (observados.contains(sensor)) {
            observados.remove(sensor);
            System.out.println("Observado removido: " + sensor.toString());
        }
    }
    
    public void removerObservador(Seguranca seguranca) {
        if (observadores.contains(seguranca)) {
            observadores.remove(seguranca);
            System.out.println("Observador removido: " + seguranca.toString());
        }
    }
    
    public void alarmar(Sensor sensor) {
        if (observados.contains(sensor)) {            
            Iterator i = observadores.iterator();
            while (i.hasNext()) {
                Seguranca observador = (Seguranca) i.next();
                observador.alertar(this);
            }
        }
    }
}
